﻿//===============================================================
//JHshIsNumber验证是否为数值型数据
//@param txtName 要验证的字符
//@param sLabel  用户提示信息中对参数txtName的描述文字
//==============================================================
function JHshIsNumber(txtName,sLabel)
{
		var strTemp = "";
		
		if (isNaN(txtName.value) || (txtName.value.length == 0))
		{
		  strTemp = "“" + sLabel + "”必须是数值型数据。";
		  window.alert(strTemp) ;
		  txtName.value = "0";
		  txtName.focus() ;
		  return false ;
		}
		else{
		  return true ;
		}
}


// ================================================================
// StringLTrim本函数用于删除字符串左边的空格
//@param sString 要删除左边空格的字符串
// ================================================================

function StringLTrim(sString)
{
var sStr,i,iStart,sResult = "";

sStr = sString.split("");
iStart = -1 ;
for (i = 0 ; i < sStr.length ; i++)
{
if (sStr[i] != " ")
{
iStart = i;
break;
}
}
if (iStart == -1) { return "" ;}    // 表示sString中的所有字符均是空格,则返回空串
else { return sString.substring(iStart) ;}

}

// ================================================================
// StringRTrim函数用于删除字符串右边的空格
//@param sString 要删除右边空格的字符串
// ================================================================
function StringRTrim(sString)
{
var sStr,i,sResult = "",sTemp = "" ;

// if (sString.length == 0) { return "" ;} // 参数sString是空串

sStr = sString.split("");
for (i = sStr.length - 1 ; i >= 0 ; i --)  // 将字符串进行倒序
{
sResult = sResult + sStr[i];
}
sTemp = StringLTrim(sResult) ; // 进行字符串前空格截除

if (sTemp == "") { return "" ; }

sStr = sTemp.split("");
sResult = "" ;
for (i = sStr.length - 1 ; i >= 0 ; i--) // 将经处理后的字符串再进行倒序
{
sResult = sResult + sStr[i];
}
return sResult ;
}


// ================================================================
// StringTrim函数用于删除字符串的空格    
//@param sString 要删除空格的字符串
// ================================================================
function StringTrim(sString){
  return StringRTrim(StringLTrim(sString));
}

//===============================================================
//判断字符是否为空字符串
//@param strData 要判断的字符
//===============================================================

 function isEmpty(strData)
{
	if (strData=="")
	{
		return true;
	}

}
//===============================================================
//IsEmpty函数用于对页面中不能为空的对象的处理
//@param obj 页面中的对象
//===============================================================

 function IsEmpty(obj) 
 { 
 obj=document.getElementsByName(obj).item(0); 
 if(Trim(obj.value)=="") 
 { 
 alert("字段不能为空。"); 
 if(obj.disabled==false && obj.readOnly==false) 
 { 
 obj.focus(); 
 } 
 } 
 } 
 


 //===============================================================
 //compareTwoDate函数用于验证选择开始日期(yyyy-mm-dd)和结束日期(yyyy-mm-dd)是否正确
 //@param startDate 要比较的开始日期
 //@param endDate   要比较的结束日期
 //@param startDesc 用户提示信息中对开始日期参数的描述文字 如：XX的开始日期
 //@param endDesc   用户提示信息中对结束日期参数的描述 文字如：XX的结束日期
 //===============================================================
function compareTwoDate(startDate,endDate,startDesc,endDesc){

  if(!isEmpty(startDate)){
       if(!isValidDate(startDate)){
         alert("您输入的"+startDesc+"格式不正确,输入的格式应为YYYY-MM-DD");
         return false;
       }	  
   }

 if(!isEmpty(endDate)){
       if(!isValidDate(endDate)){
         alert("您输入的"+endDesc+"格式不正确,输入的格式应为YYYY-MM-DD");
         return false;
       }	 
  }


   if(!isEmpty(startDate) && !isEmpty(endDate)){
         date1=returnDate(startDate);
         date2=returnDate(endDate);
         sStart=date1.getYear()+"";
         sEnd=date2.getYear()+"";

         if(date1.getMonth()<10){
          sStart+="0"+date1.getMonth();
         }
         else{
          sStart+=date1.getMonth();
         }

         if(date1.getDate()<10){
           sStart+="0"+date1.getDate();
         }
         else{
           sStart+=date1.getDate();
         }

         if(date2.getMonth()<10){
          sEnd+="0"+date2.getMonth();
         }
         else{
          sEnd+=date2.getMonth();
         }

         if(date2.getDate()<10){
           sEnd+="0"+date2.getDate();
         }
         else{
           sEnd+=date2.getDate();
         }

         if(parseInt(sStart)>parseInt(sEnd)){
           alert(startDesc+"必须小于"+endDesc)
           return false;
         }

   }
	return true;

 }

//======================================================
//returnDate函数用于把字符型日期(yyyy-mm-dd)转化为日期型日期
//@param strValue 要转换的字符型日期
//======================================================
  function returnDate(strValue){ 
    var index=strValue.indexOf("-");
    var year=strValue.substring(0,index);
    strValue=strValue.substring(index+1,strValue.length);
    index=strValue.indexOf("-");
    var month=strValue.substring(0,index);
    var day=strValue.substring(index+1,strValue.length);
    return new Date(year,month,day);

 }
//======================================================
//isValidDate函数用于验证是否为合法日期
//@param theField 要验证的日期参数(yyyy-mm-dd或yyyy/mm/dd)
//======================================================
  function isValidDate(theField)
{
	var s1, s2, sDate, sMonth, sYear;
	var inDate = theField;
	if (inDate.substring(4,5)=="-"||inDate.substring(4,5)=="/")
	{
	  s1=4;
	}
	else
	{
	  return false;
	}

	if (inDate.substring(6,7)=="-"||inDate.substring(6,7)=="/")
	{
	 s2=6;
	 }
	else if (inDate.substring(7,8)=="-" || inDate.substring(7,8)=="/")
	{
	s2=7;
	}
	else
	{
	   return false;

	}

	if (isValidInt(inDate.substring(0,s1)))
	{
       sYear= parseInt(inDate.substring(0,s1));
	}
	else
	{
		return false;
	}

	if (isValidInt(inDate.substring(s1+1,s2)))
	{
      sMonth= inDate.substring(s1+1,s2);
	}
	else
	{
		return false;
	}

	if (isValidInt(inDate.substring(s2+1,inDate.length)))
	{
       sDate= inDate.substring(s2+1,inDate.length);
	}
	else
	{
		return false;
	}




	if (sMonth==1 || sMonth==3 || sMonth==5 || sMonth==7 || sMonth==8 || sMonth==10 || sMonth==12)
	{
		if (sDate>=1 && sDate<=31) { return true; }
		else {return false;}

	}
	if (sMonth==4 || sMonth==6 || sMonth==9 || sMonth==11)
	{
		if (sDate>=1 && sDate<=30) { return true; }
		else{ return false; }

	}
	if (sMonth==2)
	{
		if (sYear%4 == 0)
		{ if (sDate>=1 && sDate <= 29) { return true; }
		  else {return false;}
	        }
		else
		{ if (sDate>=1 && sDate <= 28) { return true; }
		   else{return false;}
		 }
	}
      return false;

}





//====================================================
// isValidDecimal用于浮点数验证
//@param  theField要验证的数据
//====================================================  
function isValidDecimal(theField)
{
  var checkOK = "0123456789-.";
  var checkStr = theField;
  var allValid = true;
  var decPoints = 0;
  
  if(checkStr.length==1 &&  (checkStr=="-" || checkStr==".")){
     return false;
  }

  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);

    for (j = 0;  j < checkOK.length;  j++)

      if (ch == checkOK.charAt(j))  break;   
   if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
   
    if (ch == ".")
    {
      decPoints++;
    }
    else if(ch=="-" && i>0){    
        return false;  
      
    }
   
  }

  if (!allValid || decPoints > 1)
  {
    return false;
  }

 
  return true;
 
}

//===========================================================
//isValidInt用于整数验证
//@param theField要验证的数据
//===========================================================
function isValidInt(theField)
{
	var inStr=theField;
	var inLen=inStr.length;

	if (inLen == 0)
		return true;
	if (inLen == 1 && inStr==" ")
		return false;
	for(var i=0; i< inLen; i++)
	{
		var ch = inStr.substring(i,i+1)
        if (ch < "0" || ch > "9")
		{
			if (ch != "")
				return false;
		}
    }
	return true;
}

 



